/*
*
==============================================================================
*  Name        : 
*  Part of     : Omen Game Engine
*  Description : 
*  Version     : 1.0
*
*  Copyright (c) 2013 Lauri Kortevaara.
* 
==============================================================================
*/

#pragma once

#include "OmenConfig.h"
#include "OmenMath.h"

namespace Omen
{
    class OMEN_API Sphere
    {
        public:
            Sphere();
            Sphere( const Omen::Vector3d& position, Omen::Float radius );
            Sphere( const Sphere& other );
            virtual ~Sphere();

            const Omen::Vector3d& position() const { return m_position; }
            const Omen::Float&    radius() const { return m_radius; }

            void setPosition(const Omen::Vector3d& position) { m_position = position; }
            void setRadius(const Omen::Float& radius) { m_radius = radius; }

            Sphere& operator+( const Omen::Sphere& other);
            Sphere& operator+=( const Omen::Sphere& other);
        protected:
        private:
            Omen::Vector3d  m_position;
            Omen::Float     m_radius;
    };
}